Skip to content

[core] Allow blob inline fields without blob-field#7827

Merged
leaves12138 merged 2 commits into
apache:masterfrom
leaves12138:codex/blob-inline-fields-without-blob-field
May 13, 2026
Merged

[core] Allow blob inline fields without blob-field#7827
leaves12138 merged 2 commits into
apache:masterfrom
leaves12138:codex/blob-inline-fields-without-blob-field

Conversation

@leaves12138
Copy link
Copy Markdown
Contributor

Purpose

blob-descriptor-field and blob-view-field already fully describe descriptor/view BLOB semantics, so users should not need to repeat those fields in blob-field.

Changes

  • Relax schema validation so blob-descriptor-field and blob-view-field no longer need to be subsets of blob-field.
  • Treat fields listed in blob-descriptor-field or blob-view-field as BLOB fields during Flink and Spark table creation.
  • Keep the old style compatible: configuring the same field in blob-field still works.
  • Update docs and generated core option descriptions.
  • Replace old failure tests with coverage for descriptor/view fields without blob-field.

Tests

  • mvn -pl paimon-core -am -Pfast-build -DfailIfNoTests=false -Dtest=BlobTableTest#testBlobInlineFieldCanDeclareBlobWithoutBlobField test
  • mvn -pl paimon-flink/paimon-flink-common -am -Pfast-build -DfailIfNoTests=false -Dtest=BlobTableITCase#testWriteBlobViewWithBuiltInFunction+testBlobInlineFieldCanDeclareBlobWithoutBlobField test
  • mvn -Pspark3 -pl paimon-spark/paimon-spark-common,paimon-spark/paimon-spark3-common,paimon-spark/paimon-spark-ut -am -Pfast-build -DfailIfNoTests=false -DwildcardSuites=org.apache.paimon.spark.sql.BlobTestWithV2Write -Dtest=none test
  • hugo -b "" --quiet
  • git diff --check
  • JAVA_HOME=/opt/jdk-11.0.18.jdk/Contents/Home mvn -pl paimon-flink/paimon-flink-common -am -Pflink-2.2 -Pfast-build -DskipTests compile

@leaves12138 leaves12138 marked this pull request as ready for review May 12, 2026 08:44
@leaves12138 leaves12138 changed the title [codex] Allow blob inline fields without blob-field [core] Allow blob inline fields without blob-field May 12, 2026
if (blobFields.contains(name) || blobViewFields.contains(name)) {
if (blobFields.contains(name)
|| blobDescriptorFields.contains(name)
|| blobViewFields.contains(name)) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Could we extract a shared blobTypeFields() helper like FlinkCatalog

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we can

@XiaoHongbo-Hope
Copy link
Copy Markdown
Contributor

+1

@leaves12138 leaves12138 merged commit f908ed6 into apache:master May 13, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants